CC      = gcc
CXX     = g++
TARGET	= Editor
CCFLAGS = -Wall
CXXFLAGS = -Wall
VISIBILITY = 

COCOS2DX_PATH = ../cocos2d-x-lib/cocos2dx

INCLUDES =  -I../ \
			-I../Classes \
			-I$(COCOS2DX_PATH) \
			-I$(COCOS2DX_PATH)/platform/third_party/linux \
			-I$(COCOS2DX_PATH)/platform/third_party/linux/libfreetype2 \
			-I$(COCOS2DX_PATH)/cocoa \
			-I$(COCOS2DX_PATH)/include \
			-I$(COCOS2DX_PATH)/platform \
			-I$(COCOS2DX_PATH)/platform/linux \
			-I$(COCOS2DX_PATH)/platform/third_party/linux/glew-1.7.0/glew-1.7.0/include/ \
			-I$(COCOS2DX_PATH)/kazmath/include \
			-I$(COCOS2DX_PATH)/platform/third_party/linux/libxml2 \
			-I$(COCOS2DX_PATH)/platform/third_party/linux/libjpeg  \
#			-I$(COCOS2DX_PATH)/../CocosDenshion/include/ \
#			-I$(COCOS2DX_PATH)/../external/chipmunk/include/chipmunk/ \


DEFINES = -DLINUX

OBJECTS = ./main.o \
		../Classes/AppDelegate.o \
		../Classes/MainScreen.o \
		../Classes/DebugDraw.o

LBITS := $(shell getconf LONG_BIT)

SHAREDLIBS =
ifeq ($(LBITS),64)
	STATICLIBS_DIR = $(COCOS2DX_PATH)/platform/third_party/linux/libraries/lib64

#	SHAREDLIBS_DIR = $(COCOS2DX_PATH)/../CocosDenshion/third_party/fmod/lib64/api/lib
#	SHAREDLIBS += -L$(SHAREDLIBS_DIR) -lfmodex64
else
	STATICLIBS_DIR = $(COCOS2DX_PATH)/platform/third_party/linux/libraries

#	SHAREDLIBS_DIR = $(COCOS2DX_PATH)/../CocosDenshion/third_party/fmod/api/lib
#	SHAREDLIBS += -L$(SHAREDLIBS_DIR) -lfmodex
endif

STATICLIBS = 
STATICLIBS = $(STATICLIBS_DIR)/libfreetype.a \
				$(STATICLIBS_DIR)/libxml2.a \
				$(STATICLIBS_DIR)/libpng.a \
				$(STATICLIBS_DIR)/libjpeg.a \
				$(STATICLIBS_DIR)/libtiff.a \
#				$(STATICLIBS_DIR)/libGLEW.a \

SHAREDLIBS += -lglfw -lcurl
SHAREDLIBS += -Wl,-rpath,$(COCOS2DX_PATH)/platform/third_party/linux/glew-1.7.0/glew-1.7.0/lib
SHAREDLIBS += -L$(COCOS2DX_PATH)/platform/third_party/linux/glew-1.7.0/glew-1.7.0/lib -lGLEW
SHAREDLIBS += -Wl,-rpath,$(SHAREDLIBS_DIR)

#$(shell ../../build-linux.sh $<)

BIN_DIR_ROOT=bin
BIN_DIR = $(BIN_DIR_ROOT)

debug: BIN_DIR = $(BIN_DIR_ROOT)/debug
debug: CCFLAGS += -g3 -O0
debug: CXXFLAGS += -g3 -O0
debug: SHAREDLIBS += -L$(COCOS2DX_PATH)/../lib/linux/Debug -lcocos2d -lrt -lz
debug: SHAREDLIBS += -Wl,-rpath,$(COCOS2DX_PATH)/../lib/linux/Debug/
debug: DEFINES += -DDEBUG
debug: $(TARGET)

release: BIN_DIR = $(BIN_DIR_ROOT)/release
release: CCFLAGS += -O3
release: CXXFLAGS += -O3
release: SHAREDLIBS += -L$(COCOS2DX_PATH)/../lib/linux/Release -lcocos2d -lrt -lz
release: SHAREDLIBS += -Wl,-rpath,$(COCOS2DX_PATH)/../lib/linux/Release/
release: DEFINES += -DNDEBUG
release: $(TARGET)

####### Build rules
$(TARGET): $(OBJECTS) 
	mkdir -p $(BIN_DIR)
	$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) $(OBJECTS) -o $(BIN_DIR)/$(TARGET) $(SHAREDLIBS) $(STATICLIBS)

####### Compile
%.o: %.cpp
	$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) $(VISIBILITY) -c $< -o $@

%.o: %.c
	$(CC) $(CCFLAGS) $(INCLUDES) $(DEFINES) $(VISIBILITY) -c $< -o $@

clean: 
	rm -f $(OBJECTS) $(TARGET) core
